#ifdef HERZELEID_DESKTOP
 #if _MSC_VER
  #pragma once
 #endif

 #ifndef __HERZELEID_CHARACTERRECEIVEDEVENTARGS_INCLUDED__
  #define __HERZELEID_CHARACTERRECEIVEDEVENTARGS_INCLUDED__
  #include "HerzeleidCoreApplicationInc.hxx"
  #include "HerzeleidCorePhysicalKeyStatus.hxx"
  #include "HerzeleidEventArgsBase.hxx"

// Provides the arguments returned by the event raised when a character is received by the input queue.
HerzeleidUICoreNamespaceBegin class CharacterReceivedEventArgs : public EventArgsBase
{
	friend class CoreDispatcher;

	CorePhysicalKeyStatus m_Status;		// Gets the status of the physical key press that raised the character-received event.
	UInt32 m_KeyCode;					// The key code of the character received by the input queue.

public:

	CharacterReceivedEventArgs();

	DeclGetPropOnly( UInt32Const, KeyCode );																// Gets the key code of the character whose input raised the event.
	DeclGetPropOnly( CorePhysicalKeyStatusConstPtrConst, KeyStatus );										// Gets the status of the physical key press that raised the character-received event.
	inline DeclConstTypedGetterFor( UInt32Const, KeyCode ) { return m_KeyCode; }							// Gets the key code of the character whose input raised the event.
	inline DeclConstTypedGetterFor( CorePhysicalKeyStatusConstPtrConst, KeyStatus ) { return &m_Status; }	// Gets the status of the physical key press that raised the character-received event.

} HerzeleidUICoreNamespaceEnd; 

#endif // !HERZELEID_CHARACTERRECEIVEDEVENTARGS_INCLUDED__
#endif // !HERZELEID_DESKTOP
